import java.util.HashMap;

class Solution {
    public int[] distinctDifferenceArray(int[] nums) {
        int[] res = new int[nums.length];
        int j;
        HashMap<Integer, Integer> fastMap = new HashMap<>(); // 原题只有0-50个，也可以用长度为51的数组
        HashMap<Integer, Integer> slowMap = new HashMap<>();

        for (int i : nums) {
            if (!fastMap.containsKey(i)) {
                fastMap.put(i, 1);
            } else {
                fastMap.put(i, fastMap.get(i)+1);
            }
            
        }

        for (int i = 0; i < nums.length; i++) {
            j = nums[i];
            if (!slowMap.containsKey(j)) {
                slowMap.put(j, 0);
            } else {
                slowMap.put(j, slowMap.get(j)+1);
            }

            if (fastMap.containsKey(j)) {
                fastMap.put(j, fastMap.get(j)-1);
                if (fastMap.get(j)==0) {
                    fastMap.remove(j);
                }
            }
            res[i] = slowMap.size() - fastMap.size();
        }
        return res;
        
    }
}